home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d963.lha / SIOD / scm / trees.scm < prev    next >
Text File  |  1993-02-22  |  960b  |  39 lines

  1. (define the-empty-tree 'empty-tree)
  2.  
  3. (define (empty-tree? x) 
  4.         (eq? x the-empty-tree))
  5.  
  6. (define (make-tree l e r)
  7.         (list l e r))
  8.  
  9. (define (make-leaf e)
  10.         (list the-empty-tree e the-empty-tree))
  11.  
  12. (define (left-branch tree)
  13.         (car tree))
  14.  
  15. (define (right-branch tree)
  16.         (caddr tree))
  17.  
  18. (define (entry tree)
  19.         (cadr tree))
  20.  
  21. (define (post tree)
  22.         (if (empty-tree? tree)
  23.             nil
  24.             (append (post (left-branch tree)) 
  25.                     (post (right-branch tree))
  26.                     (list (entry tree)))))
  27. (define (pre tree)
  28.         (if (empty-tree? tree)
  29.             nil
  30.             (append (list (entry tree))
  31.                     (pre (left-branch tree)) 
  32.                     (pre (right-branch tree)))))
  33. (define (in tree)
  34.         (if (empty-tree? tree)
  35.             nil
  36.             (append (in (left-branch tree))
  37.                     (list (entry tree)) 
  38.                     (in (right-branch tree)))))
  39.